// create by lsy 2017-08-29

$(function(){
	
	//var id = 5; // 测试 id = 5;
	var id = localStorage.getItem('id');

	// 获取项目信息
    $.ajax({
        type:"post",
        url: getUrl() + "/TV/loadProjectInfo",
        async:true,
        data: {
            'projectId' : id
        },
        success:function(data){
            console.log(data);
            if(data){
                // 取值
                var projectName = data.projectName;
                var logoUrl = data.logo;
                // 填值
                $("#projectName").html(projectName);
				$("#logo").attr('src','logoUrl');
            }
        },
        error:function () {
            console.log('获取项目信息 error');
        }
    });

	// 获取电站个数，运行个数，故障个数
	function getStationInfo(){
		$.ajax({
			type:"post",
			url: getUrl() + "/TV/getRtCommstatus",
			async:true,
			data: {
				'projectId' : id
			},
			success:function(data){
				if(data){
					var reData = JSON.parse(data);
					// 取值
					var count = reData.count, // 总
						running = reData.running, // 运行
						err = reData.err; // 故障
					//填值
					$("#totalStation").html(count);
					$("#runningStation").html(running);
					$("#errorStation").html(err);
				}
			},
			error:function(){
				console.log('获取站运行信息 error');
			}
		});
	}//getStationInfo()
	
	// 获取统计信息日、月、年、累计发电量、累计收益以及累计碳减排、植树和节约标准煤、收益
	function getStatisticInfo(){
		$.ajax({
			type:"post",
			url: getUrl() + "/TV/getProjectAnalysisDatas",
			async:true,
			data: {
				'projectId' : id
			},
			success:function(data){
				if(data.mapList){
					// 取数据集
					var day = JSON.parse(data.mapList.day), // 日发电量
						electricTotal = JSON.parse(data.mapList.electricTotal), // 总发电量
						earn = JSON.parse(data.mapList.earn), // 收益
						coalFactor = JSON.parse(data.mapList.coalFactor), // 节约标准煤
						treeFactor = JSON.parse(data.mapList.treeFactor), // 植树
						erFactor = JSON.parse(data.mapList.erFactor); // 减排

					// 填值
					// 日发电量
					$("#dayEle").html( Number(day.value).toFixed(1) + '<br/>' + day.unit );
					// 总发电量
					$("#totalEle").html( Number(electricTotal.value).toFixed(1) + '<br/>' + electricTotal.unit );
					// 收益
					$("#benifitValue").html( Number(earn.value).toFixed(1) + ' ' + earn.unit );
					// 节约标准煤
					$("#coalFactorValue").html( Number(coalFactor.value).toFixed(1) + ' ' + coalFactor.unit );
					// 等效植树
					$("#treeFactorValue").html( Number(treeFactor.value).toFixed(1) + ' ' + treeFactor.unit );
					// 减排
					$("#erFactorValue").html( Number(erFactor.value).toFixed(1) + ' ' + erFactor.unit );
				}
			},
			error:function(){
				console.log('获取统计信息 error');
			}
		});
	}//getStatisticInfo()
	
	// 得到指针图数据
	function getPowerInsData(){
		$.ajax({
			type:"post",
			url: getUrl() + "/TV/getRtProjectDatas",
			async:true,
			data:{
				'projectId' : id
			},
			success:function(data){
				//console.log(data.mapList);
				if(data.mapList){
					// 效率数据
					var efficiencyData = JSON.parse(data.mapList.efficiency);
					// 功率数据
					var powerData = JSON.parse(data.mapList.power);
					// 取值
					var effValue = (Number(efficiencyData.value).toFixed(2)) * 100,
						powerValue = Number(powerData.value).toFixed(1),
                   		powerMax = setCeilInt(Number(powerValue),6);

					// 重绘指针图
					powerIns.reDraw( effValue, powerValue, powerMax);
				}
				
			},
			error:function(){
				console.log('指针图 error');
			}
		});
	}//getPowerInsData()
	
	// 得到功率折线图数据
	function getHisPowerData(){
		$.ajax({
			type:"post",
			url: getUrl() + "/TV/getHisProjectPowerDatas",
			async:true,
			data:{
				'intervalTime' : 600,
				'projectId' : id
			},
			success:function(data){
				//console.log('功率数据');
				//console.log(data);// obj

				var reData = data.dataValues.power;
				if(reData && reData.length > 0){
                    var stepX = 10; //10分钟一个点
					var yAxisData = createEmptyArr(144);
					var dataLength = reData.length;
					for(var i = 0;i<dataLength;i++){
                        //判断quality 为0无效，为1有效
                        if(reData[i].quality & 1 != 0) {
                            var dataInY = (reData[i].hour * 60  + reData[i].minute) / stepX;
                            yAxisData[dataInY] = reData[i].value.toFixed(2);
                        }
					}

					// 重绘折线图
                    hisPower.reDraw(yAxisData);

				} // if
			},
			error:function(){
				console.log('功率折线图 error');
			}
		});
	}// getHisPowerData()
	
	// 得到月发电量柱图数据
	function getHisMonthEleData(){
		$.ajax({
			type:"post",
			url: getUrl() + "/TV/getProjectHistogramDatas",
			async:true,
			data:{
				'projectId' : id
			},
			success:function(data){
				//console.log(data.histogramDatas);
				var reData = data.histogramDatas;
				
				if(reData){
					// 先获取当月天数，设置X轴
					var nowData = new Date();	
					var monthLength = getMonthDays(nowData.Format('yyyy-MM-dd'));
					var xAxisData = createXArray(monthLength);
					var yAxisData = createEmptyArr(monthLength);
					// 遍历数据
					for( x in reData){
						// 先检查质量戳
						if(reData[x].quality  & 1 != 0){
							var index = x - 1;
							var value = Number(reData[x].value).toFixed(2);
							yAxisData[index] = value;
						}
					}
					// 重绘柱图
					hisMonthEle.reDraw(xAxisData, yAxisData);
				}
				
			},
			error:function(){
				console.log('发电量柱图 error');
			}
		});
	}//getHisMonthEleData()

	// 页面右上角时间
	function getNowDate() {
		var now = new Date();
		var nowTime = now.Format('yyyy-MM-dd hh:mm:ss');
		$(".headerDateDiv").html(nowTime);
    }


    // 指针图初始化
    var powerIns = new DrawGauge('mainTopLeftChart','逆变效率','%','实时功率','kW');
    powerIns.init();
    // 功率折线图初始化
    var hisPower = new DrawLine('mainBottomLeftChart','功率','kW');
    hisPower.init();
    // 月发电量柱图初始化
    var hisMonthEle = new DrawBar('mainBottomRightChart','当月发电量','/日','kWh');
    hisMonthEle.init();

    // 获取电站个数，运行个数，故障个数
    getStationInfo();

	// 获取统计信息日、月、年、累计发电量、累计收益以及累计碳减排、植树和节约标准煤、收益
    getStatisticInfo();

    //页面右上时间
    getNowDate();

    // 指针图
    getPowerInsData();

    // 功率折线图
    getHisPowerData();

    // 月发电量柱图
    getHisMonthEleData();

    // 300毫秒 任务
	var timeRefresh = new Alarm(getNowDate,300,timeRefresh);
    timeRefresh._start();

    // 5s 任务
    var fiveSeconds = setInterval(function(){
        // 指针图
        getPowerInsData();
        // 获取电站个数，运行个数，故障个数
        getStationInfo();
    },5000);

    // 5min 任务
    var fiveMinutes = setInterval(function(){
        // 获取统计信息日、月、年、累计发电量、累计收益以及累计碳减排、植树和节约标准煤、收益
        getStatisticInfo();
        // 功率折线图
        getHisPowerData();
        // 月发电量柱图
        getHisMonthEleData();
    },3 * Math.pow(10,5));

});
